home *** CD-ROM | disk | FTP | other *** search
- ===========================================================================
- 【作 品 名】 HAPPy Version 0.0 (標準Pascal処理系) 全ソースコード
- 【作 者】 浅野比富美 (NIFTY-Serve GFA01713)
- 【動作環境】 QuickC Version 2.0でコンパイル
- ===========================================================================
-
- 1.はじめに
- HAPPyは、ISO規格にほぼ準拠する標準Pascalの処理系です。
- Pascalの設計者N.Wirthの大学研究グループが開発し、一般に公開
- されているPascal-P4という処理系をもとに作られています。
- Pascalを使いたい、言語処理系を作ってみたい、という夢をかたちにする
- べく生まれたものですが大きな壁がありました。Pascal-P4はすべてPa
- scalで書かれていますが、私はPascalの処理系を持っていません。Pa
- scal処理系を買ってきたのでは意味がないので、だったらPascal-P4
- をもとに、自分でC言語に書き直してみようと決意したのです。
- そして出来上がったのがHAPPyです。単なるPascal-P4の書き直し
- ではなく、自分なりに改良したり、ISO規格を満たすようにいろいろと変更して
- あります。
- C言語で書かれたHAPPyのソースコードは、言語処理系の実際を見る上で、
- また、今最も流行っているC言語の勉強用に、あるいは自分独自の言語処理系を作
- る上の土台とするのに多少なりとも有用ではないかと思い、あまり良い出来ではな
- いのですが、恥を忍んでフリコレ6に収録してもらうことにしました。
-
- 2.ファイル構成
- 収録ファイルは、次の通りです。
-
- ドキュメントファイル
- HAPPYSRC.GGG 概要説明
- HAPPYSRC.DOC ドキュメント
- ヘッダファイル
- PASCOMP .H コンパイラ共通ヘッダ
- PCPCD .H P-codeニーモニックヘッダ
- HAPAI .H アセンブラ、インタプリタ共通ヘッダ
- VERSION .H バージョン番号定義ヘッダ
- コンパイラソース
- PCMAIN .C コンパイラメイン処理
- PCINIT .C 初期設定処理
- PCBLOCK .C program,block のコンパイル処理
- PCTYPE .C 型のコンパイル処理
- PCDCL .C 宣言部のコンパイル処理
- PCCALL .C 手続き・関数のコンパイル処理
- PCCALUSR.C ユーザ定義手続き・関数のコンパイル処理
- PCEXPRES.C 式のコンパイル処理
- PCIDENT .C 名前の処理
- PCGENCD .C P-codeソースの生成処理
- PCINSMBL.C 記号の入力処理
- PCHEAP .C HEAPメモリの管理処理
- PCSET .C 集合操作処理
- PCETC .C 各種サブルーチン
- PCERR .C コンパイルエラーメッセージ出力処理
- アセンブラソース
- PAASM .C P-codeアセンブラ
- インタプリタソース
- PIMAIN .C P-codeインタプリタ メイン処理
- PICALLSP.C 標準手続き・関数の処理
- MAKEファイル
- PC .MAK コンパイラ メイクファイル
- PA .MAK アセンブラ メイクファイル
- PI .MAK インタプリタ メイクファイル
-
- 3.ソースコードについて
- 前述のPascal-P4は、次の書籍に全ソースコードとその解説が掲載され
- ています。
- 「Pascalの言語処理系」 近代科学社 3000円
- この本を見ながら、オリジナルのPascalソースと、収録C言語ソースを比べ
- て少しずつ解読してみて下さい。全部で11000行ほどあるので、根気との勝負
- です。
- プロが仕事で作るソフトならば、何々設計書とかブロック構成図、流れ図、テー
- ブル仕様書など、いろんなドキュメントがあるのですが、HAPPyは、趣味のプ
- ログラムであり、ドキュメントがありません。保守のためにも、追々各種ドキュメ
- ントを揃えていきたいと思っています。結局ドキュメントなしで作っていますので
- プログラムの作りが結構いい加減だったりします。もっともっと改良できるはずで
- す。私自身は、このソースを今後どんどん改良していくつもりです。
- フリコレ6に収録されているソースを、このままQuickCのスモールモデル
- モードでコンパイルしていただければHAPPy Version 0.0の実行
- ファイルが出来上がります。MS-Cでコンパイルすれば、多分さらに効率の良い
- 実行ファイルが出来るはずです。
- また、High-Cならば、アセンブラをコンパイラの中に含めたりいろいろ工
- 夫すれば、お好みの32ビット版高速処理系を作り出せる楽しみを味わえます。
-
- 4.著作権等
- ソースコードの著作権は、浅野比富美にあります。
- しかし、私の名誉を傷つける行為をしないかぎり、ソースコードを自由に使って
- いただいてかまいません。
- そのためにも、改造や流用した人の名前を必ずソースコード及び実行メッセージ
- の中に入れてくださいね。私の名前は消して構いませんから。
-
- 5.無保証・無サポートのお断り
- ソースコードに関する質問は、原則として受け付けていません。
- ソースコードの使用による損害について、私は責任を負いません。
-
- ──────── 以上 (HAPPYSRC.DOC 終わり) ────────